#ifndef PHYSICS_WORLD_BULLET
#define PHYSICS_WORLD_BULLET

#include <QVector3D>
#include <EObject.h>
#include <BulletClassDataSource/ObjectBullet.h>
#include <QVarintTrigger.h>

class PhysicsWorldBullet : public ObjectBullet
{
	Q_OBJECT
        Q_PROPERTY(bool DebugDraw READ getDebugDraw WRITE setDebugDraw)
        Q_PROPERTY(QVector3D Gravity READ getGravity WRITE setGravity)
        Q_PROPERTY(QVarintTrigger CollisionOnce READ getTriggerCollisionOnce WRITE setTriggerCollisionOnce)
        Q_PROPERTY(QVarintTrigger SaveRigidInfo READ getTriggerSaveRigidInfo WRITE setTriggerSaveRigidInfo)
        Q_PROPERTY(QVarintTrigger ReadSDFInfo READ getTriggerReadSDFInfo WRITE setTriggerReadSDFInfo)
        Q_PROPERTY(QVarintTrigger ComputeDof READ getTriggerComputeDof WRITE setTriggerComputeDof)
        Q_PROPERTY(QVarintTrigger DisassemblySequence READ getTriggerDisassemblySequence WRITE setTriggerDisassemblySequence)

public:
    PhysicsWorldBullet(QObject *parent = 0);
    virtual ~PhysicsWorldBullet();

    void setDebugDraw(bool boolValue);
    bool getDebugDraw();

    void setGravity(const QVector3D& gravity);
    QVector3D getGravity();

    QVarintTrigger getTriggerCollisionOnce();
    void setTriggerCollisionOnce(QVarintTrigger trigger);

    QVarintTrigger getTriggerSaveRigidInfo();
    void setTriggerSaveRigidInfo(QVarintTrigger trigger);

    QVarintTrigger getTriggerReadSDFInfo();
    void setTriggerReadSDFInfo(QVarintTrigger trigger);

    QVarintTrigger getTriggerComputeDof();
    void setTriggerComputeDof(QVarintTrigger trigger);

    QVarintTrigger getTriggerDisassemblySequence();
    void setTriggerDisassemblySequence(QVarintTrigger trigger);
protected:
	
};
#endif // PHYSICS_WORLD_BULLET
